Certain digital devices such as microcontrollers (MCUs) have become very useful in hand held digital electronics such as mobile phones, personal digital assistants, wearable electronics, deeply embedded smart devices such as smart light bulbs, and the like. These devices typically require persistent memory to store programs and data that retain their contents even when power is interrupted. In particular, battery-based devices can have their power interrupted unexpectedly during operation and these devices need to be able to recover from an unexpected loss of power without loss of data. A common form of non-volatile memory known as “flash” memory is based on floating gate technology and suffers from wear-out after a certain number of erase and write cycles. It is important to uniformly spread the number of write and erase cycles over all sectors so that no memory cells wear out long before the other memory cells. In addition, writing or erasing of data requires a relatively long amount of time to complete, and write or erase latency can cause disruption in program operation leading to poor performance.
The use of the same reference symbols in different drawings indicates similar or identical items. Unless otherwise noted, the word “coupled” and its associated verb forms include both direct connection and indirect electrical connection by means known in the art, and unless otherwise noted any description of direct connection implies alternate embodiments using suitable forms of indirect electrical connection as well. In the following description, numbers in hexadecimal format are indicated with “0×” prefix before the number.